home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / UUPC11QS.ARJ / COMM.H < prev    next >
C/C++ Source or Header  |  1991-12-07  |  4KB  |  96 lines

  1. /*
  2. ** declarations for comm.asm
  3. **
  4. ** compilation must use the Ze switch to enable the
  5. ** "far" keyword for the small memory model
  6. **
  7. ** Robin Rohlicek   3/86
  8. ** skl@van-bc.UUCP    5/88 (more prototypes and com_errors fix)
  9. */
  10.  
  11. void far select_port(int); /* select active port (1 or 2) */
  12.  
  13. void far save_com(void);   /* save the interupt vectors */
  14.  
  15. void far restore_com(void);   /* restore those vectors */
  16.  
  17. int far install_com(void); /* install our vectors */
  18.  
  19. void far open_com(         /* open com port */
  20.    int,  /* baud */
  21.    int,  /* 'M'odem or 'D'irect */
  22.    int,  /* Parity 'N'one, 'O'dd, 'E'ven, 'S'pace, 'M'ark */
  23.    int,  /* stop bits (1 or 2) */
  24.    int); /* Xon/Xoff 'E'nable, 'D'isable */
  25.  
  26. void far close_com(void);  /* close com port */
  27.  
  28. void far dtr_off(void);    /* clear DTR */
  29.  
  30. void far dtr_on(void);     /* set DTR */
  31.  
  32. long far r_count(void);    /* receive counts */
  33.    /* high word = total size of receive buffer */
  34.    /* low word = number of pending chars */
  35. #define r_count_size() ((int)(r_count() >> 16))
  36. #define r_count_pending() ((int)r_count())
  37.  
  38. int far receive_com(void); /* get one character */
  39.    /* return -1 if none available */
  40.  
  41. long far s_count(void);    /* send counts */
  42.    /* high word = total size of transmit buffer */
  43.    /* low word = number of bytes free in transmit buffer */
  44. #define s_count_size() ((int)(s_count() >> 16))
  45. #define s_count_free() ((int)s_count())
  46.  
  47. void far send_com(int);    /* send a character */
  48.  
  49. void far send_local(int);  /* simulate receive of char */
  50.  
  51. void far sendi_com(int);   /* send immediately */
  52.  
  53. void far break_com(void);  /* send a BREAK */
  54.  
  55. int far * far com_errors(void);  /* return far pointer to error counts
  56.                                     (in static area) */
  57. #define COM_EOVFLOW 0   /* buffer overflows */
  58. #define COM_EOVRUN  1   /* receive overruns */
  59. #define COM_EBREAK  2   /* break chars */
  60. #define COM_EFRAME  3   /* framing errors */
  61. #define COM_EPARITY 4   /* parity errors */
  62. #define COM_EXMIT   5   /* transmit erros */
  63. #define COM_EDSR    6   /* data set ready errors */
  64. #define COM_ECTS    7   /* clear to send errors */
  65.  
  66.  
  67. /*--------------------------------------------------------------------*/
  68. /*                    Macros based on modem status                    */
  69. /*--------------------------------------------------------------------*/
  70.  
  71. #ifdef NO_COMMFIFO
  72. #define is_dsr_high() 1
  73. #define is_cts_high() 1
  74. #define is_cd_high()  1
  75. #define modem_status()  0xff  /* Fake return */
  76. #else
  77. int far modem_status( void ); /* Return current modem status         */
  78.  
  79. #define is_dsr_high() (( modem_status & MDM_NCD  ) == 0x00)
  80. #define is_cts_high() (( modem_status & MDM_NDSR ) == 0x00)
  81. #define is_cd_high()  (( modem_status & MDM_NCD  ) == 0x00)
  82. #endif
  83.  
  84. /*--------------------------------------------------------------------*/
  85. /*                   Bits returned by modem status                    */
  86. /*--------------------------------------------------------------------*/
  87.  
  88. #define MDM_NCD   0x80        /* -CD  (Carrier Detect, inverted)     */
  89. #define MDM_NRI   0x40        /* -RI  (Ring Indicator, inverted)     */
  90. #define MDM_NDSR  0x20        /* -DSR (Data Set Ready, inverted)     */
  91. #define MDM_NCTS  0x10        /* -CTS (Clear to Send, inverted)      */
  92. #define MDM_CDC   0x08        /* Delta Carrier Detect  (CD changed)  */
  93. #define MDM_TRI   0x04        /* Trailing edge of RI   (RI went OFF) */
  94. #define MDM_DSRC  0x02        /* Delta DSR             (DSR changed) */
  95. #define MDM_CTSC  0x01        /* Delta CTS             (CTS changed) */
  96.